package com.yuanjing.xiangqinxiangai.model

import com.yuanjing.xiangqinxiangai.liveMessagePlugin

data class RoomDataModel(
    var applyOnlineVo: ApplyOnlineVo?,
    var bindAngelVO: BindAngelVO?,
    var givePropMsg: GivePropMsg?,
    var inputSteamMsg: InputSteamMsg?,
    var joinRoomEffectVO: JoinRoomEffectVO?,
    var joinTrainVO: JoinTrainVO?,
    var msgType: Int?,
    var musicMsgVO: MusicMsgVO?,
    var paiMaiMsgVO: PaiMaiMsgVO?,
    var requestId: Long?,
    var roomChangeVO: RoomChangeVO?,
    var roomLiveCheck: Int?,
    var roomMais: List<RoomMai?>?,
    var roomPKVO: RoomPKVO?,
    var toppingVO: ToppingVO?
) {
    data class ApplyOnlineVo(
        var applyCountMan: Int?,
        var applyCountWoman: Int?,
        var onlineCountMan: Int?,
        var onlineCountWoman: Int?
    )

    data class BindAngelVO(
        var anchorAvatar: String?,
        var anchorUserId: Int?,
        var angelType: Int?,
        var avatar: String?,
        var maiIndex: Int?,
        var propId: Int?,
        var userId: Int?
    )

    data class GivePropMsg(
        var action: Int?,
        var amount: Int?,
        var anchorReceiveRankVOS: List<AnchorReceiveRankVOS?>?,
        var propId: Int?,
        var rankVOS: List<RankVOS?>?,
        var receiveNick: String?,
        var receiveUserId: Int?,
        var sendUserVO: SendUserVO?,
        var userId: Int?,
        var wishRoomUserVO: WishRoomUserVO?
    ) {
        data class AnchorReceiveRankVOS(
            var anchorUserId: Int?,
            var maiIndex: Int?,
            var mysteryMan: Int?,
            var nick: String?,
            var rankVOS: List<RankVOS?>?,
            var receiveTotal: Int?,
            var wishes: List<Wishe?>?
        ) {
            data class RankVOS(
                var avatar: String?,
                var mysteryMan: Int?,
                var nick: String?,
                var tokens: Int?,
                var userId: Int?
            )

            data class Wishe(
                var createTime: String?,
                var deleteFlag: Int?,
                var id: Int?,
                var propId: Int?,
                var propNum: Int?,
                var propOrder: Int?,
                var propReceive: Int?,
                var status: Int?,
                var userId: Int?
            )
        }

        data class RankVOS(
            var avatar: String?,
            var mysteryMan: Int?,
            var nick: String?,
            var tokens: Int?,
            var userId: Int?
        )

        data class SendUserVO(
            var age: Int?,
            var avatar: String?,
            var avatarFrameUrl: String?,
            var beautifulCodeUrl: String?,
            var chatFrameUrl: String?,
            var mysteryMan: Int?,
            var nick: String?,
            var prohibition: Int?,
            var province: String?,
            var sex: Int?,
            var userCode: String?,
            var userId: Int?,
            var userLabels: List<UserLabel?>?,
            var vipGrade: Int?
        ) {
            data class UserLabel(
                var anchorUserId: Int?,
                var labelName: String?,
                var labelType: Int?,
                var url: String?
            )
        }

        data class WishRoomUserVO(
            var propNum: Int?,
            var propReceive: Int?
        )
    }

    data class InputSteamMsg(
        var exclusive: Int?,
        var inputStreamId: String?,
        var maiIndex: Int?,
        var maiOpen: Int?,
        var maiStatus: Int?,
        var roomId: Int?,
        var roomType: Int?,
        var userId: Int?
    )

    data class JoinRoomEffectVO(
        var avatar: String?,
        var bannerUrl: String?,
        var nick: String?,
        var propId: Int?,
        var userId: Int?
    )

    data class JoinTrainVO(
        var avatar: String?,
        var nick: String?,
        var roomId: Int?,
        var userCode: String?,
        var userId: Int?
    )

    data class MusicMsgVO(
        var musicJumpTokens: Int?,
        var musicPropId: Int?,
        var musicUsers: List<MusicUser?>?,
        var numberOneTokens: Int?,
        var numberOneUserId: Int?,
        var pointAmount: Int?,
        var pointPeople: Int?,
        var requestId: Int?
    ) {
        data class MusicUser(
            var jumpNeedTokens: Int?,
            var musicStatus: Int?,
            var receiveTime: Int?,
            var receiveTokens: Int?,
            var userId: Int?
        )
    }

    data class PaiMaiMsgVO(
        var paiMaiIngVO: PaiMaiIngVO?,
        var rankVOS: List<RankVOS?>?
    ) {
        data class PaiMaiIngVO(
            var beginTime: String?,
            var dayDesc: String?,
            var endReason: String?,
            var expireTime: Int?,
            var orderNo: String?,
            var roomId: Int?,
            var status: Int?,
            var successUserAvatar: String?,
            var successUserId: Int?,
            var successUserNick: String?,
            var typeName: String?,
            var userId: Int?
        )

        data class RankVOS(
            var avatar: String?,
            var mysteryMan: Int?,
            var nick: String?,
            var tokens: Int?,
            var userId: Int?
        )
    }

    data class RoomChangeVO(
        var roomType: Int?,
        var tokens: Int?,
        var userId: Int?
    )

      class RoomMai(
        var avatar: String?,
        var deleteFlag: Int?,
        var id: Int?,
        var inputStreamId: String?,
        var liveMinutes: Int?,
        var maiIndex: Int,
        var maiOpen: Int?,
        var musicVO: MusicVO?,
        var mysteryMan: Int?,
        var nick: String?,
        var outputStreamId: String?,
        var receiveTokens: Int?,
        var roomAnchorStickersList: List<RoomAnchorStickers?>?,
        var roomId: Int?,
        var sex: Int?,
        var shangMaiTime: String?,
        var soundMai: Int?,
        var status: Int?,
        var userId: Int?,
        var xiaMaiTime: String?
    ) {


          fun isAnchor() :Boolean{
              return  userId == liveMessagePlugin?.roomInfo?.selfUserId
          }
        data class MusicVO(
            var avatar: String?,
            var createTime: String?,
            var musicName: String?,
            var musicSerialNumber: String?,
            var musicStatus: Int?,
            var nick: String?,
            var pointAvatar: String?,
            var pointNick: String?,
            var pointUserId: Int?,
            var userId: Int?
        )

        data class RoomAnchorStickers(
            var count: Int?,
            var lastTime: String?,
            var propId: Int?
        )
    }

    data class RoomPKVO(
        var createTime: String?,
        var endSecond: Int?,
        var isStart: Int?,
        var minutes: Int?,
        var orderNo: String?,
        var pkGroupVO: PkGroupVO?,
        var pkType: Int?,
        var pkUserVOS: List<PkUserVOS?>?,
        var roomId: Int?
    ) {
        data class PkGroupVO(
            var groupBlue: List<GroupBlue?>?,
            var groupRed: List<GroupRed?>?,
            var tokensBlue: Int?,
            var tokensRed: Int?
        ) {
            data class GroupBlue(
                var avatar: String?,
                var group: Int?,
                var nick: String?,
                var tokens: Int?,
                var userId: Int?
            )

            data class GroupRed(
                var avatar: String?,
                var group: Int?,
                var nick: String?,
                var tokens: Int?,
                var userId: Int?
            )
        }

        data class PkUserVOS(
            var avatar: String?,
            var group: Int?,
            var nick: String?,
            var tokens: Int?,
            var userId: Int?
        )
    }

    data class ToppingVO(
        var maiIndex: Int?,
        var roomId: Int?
    )
}